class Solution(object):

    def findMaxConsecutiveOnes(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        得出最大连续1的数
        """
        '''
        我知道这个方法怎么求解了，其实问题的关键就是两个变量，
        有一个是只有出现了连续最大数更多的情况下才需要刷新，
        然后怎么判断这个数需不需要刷新呢，就用当前连续1的数量来判断就可以了。
        '''
        max_ones = 0  # 记录最大的连续1的数量
        current_ones = 0  # 当前连续1的数量

        for num in nums:
            if num == 1:
                current_ones += 1
                max_ones = max(max_ones, current_ones)  # 更新最大连续1的数量
            else:
                current_ones = 0  # 重置当前连续1的数量

        return max_ones


# 创建一个Solution对象
solution = Solution()

# 测试用例
test_cases = [
    ([1, 1, 0, 1, 1, 1], 3),  # 3个连续的1
    ([1, 0, 1, 1, 0, 1], 2),  # 2个连续的1
    ([0, 0, 0, 0], 0),  # 没有1
    ([1, 1, 1, 1, 1], 5),  # 5个连续的1
    ([1, 0, 1, 0, 1, 0, 1], 1)  # 1个连续的1
]


# 测试函数
def test_solution(solution, test_cases):
    """
    测试给定解决方案的函数。

    该函数通过遍历一系列测试用例来验证solution中findMaxConsecutiveOnes函数的正确性。
    每个测试用例包含一个数字列表和一个期望的结果，用来检查findMaxConsecutiveOnes函数的输出是否符合预期。

    参数:
    solution: 包含待测试的findMaxConsecutiveOnes方法的对象。
    test_cases: 一个测试用例列表，每个测试用例是一个元组，包含一个数字列表和一个期望的最长连续1的个数。
    """
    # 遍历测试用例
    for nums, expected in test_cases:
        # 调用solution的findMaxConsecutiveOnes方法，传入数字列表
        result = solution.findMaxConsecutiveOnes(nums)
        # 打印测试结果，包括输入的数字列表、期望的结果、实际的结果以及是否通过测试（即实际结果是否等于期望结果）
        print(f"nums: {nums} -> expected: {expected}, got: {result}, pass: {result == expected}")



# 运行测试
test_solution(solution, test_cases)
